package br.requisiteworks.util;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.MappedSuperclass;

/**
 * Define as propriedades basicas de um registro do banco de dados
 * 
 * @author Mikhail Domanoski
 * 
 * @version 1, 01/04/2010
 */
@MappedSuperclass
public abstract class Entidade {

	/**
	 * Data em que o registro foi alterado pela ultima vez
	 */
	@Column(name = "dat_regis", nullable = false)
	protected Date dataRegistro = new Date();

	/**
	 * Ultimo usuario que modificou o registro
	 */
	@Column(name = "cod_user", nullable = false)
	protected String usuarioRegistro;

	/**
	 * Indica se este registro esta ativo ou inativo
	 */
	@Column(name = "ind_ativo", nullable = false)
	protected boolean registroAtivo = true;

	public Date getDataRegistro() {
		return dataRegistro;
	}

	public void setDataRegistro(Date dataRegistro) {
		this.dataRegistro = dataRegistro;
	}

	public String getUsuarioRegistro() {
		return usuarioRegistro;
	}

	public void setUsuarioRegistro(String usuarioRegistro) {
		this.usuarioRegistro = usuarioRegistro;
	}

	public boolean isRegistroAtivo() {
		return this.registroAtivo;
	}

	public void setRegistroAtivo(boolean ativo) {
		this.registroAtivo = ativo;
	}

	@Override
	public int hashCode() {
		return super.hashCode();
	}

	@Override
	public boolean equals(Object obj) {
		return obj == this;
	}

}
